<?php
/**
 * CLI 命令行处理
 *
 */
class CLI_Help extends CLI
{

    /**
     * 脚本主方法
     *
     * @param  string  $command
     * @return void
     */
    public function main()
    {
        $command = $this->args->get(0);

        if ( ! $command)
        {
            return $this->_help();
        }

        // 获取类名称
        $class = 'CLI_'.implode('_', array_map('ucfirst', explode('_', $command)));

        if ( ! class_exists($class))
        {
            CLI::output("\n脚本命令 $command 不存在\n");
            return ;
        }

        // 实例化对象
        $object = new $class();

        // 输出帮助信息
        if ( ! method_exists($class, 'help'))
        {
            CLI::output("\n未找到脚本命令 $command 相关的帮助信息\n");
            return ;
        }

        return $object->help();
    }

    /**
     * 输出帮助信息
     */
    protected function _help()
    {
        $content = <<<EOF

华强北在线 PHP 命令行脚本工具


使用方法 : cli.php <command> [参数] [...]


    command : 命令名称，类名 (但不包括 cli_ 字符),忽略大小写。

              使用 cli.php help <command>  可获取指定命令的使用帮助。


--key=value : 可选参数，可由多个可选参数构成。

              key    必须由字母开头，由 [字母+数字+下线线] 组成。

              value  可以为空，但不允许包含空白字符及特殊符号。

EOF;
        CLI::output($content);
    }

}